class Salle < ActiveRecord::Base
  has_many :machines
  validates_presence_of :nom_salle, :message => "Le nom de la salle est obligatoire"
  validates_length_of :nom_salle, :maximum => 15, :message => "15 caractères est le maxium"
  
  def self.importMachines(salle_id,debut_ip_1,debut_ip_2,fin_ip_1,fin_ip_2)    
      puts "Ajout dans la salle"+salle_id.to_s
      
      date_debut = Time.new.strftime("%d-%m-%Y-%H-%M-%S")
      if debut_ip_1 == "" && debut_ip_2 == ""
        debut_ip_1 = '*'
        debut_ip_2 = '*'
      end
      
      if fin_ip_1 == ""
        fin_ip_1 = '-255'
      elsif fin_ip_1 != "*"
        fin_ip_1 = '-'+fin_ip_1.to_s
      elsif fin_ip_1 == "*"
        fin_ip_1 = ''
     
      end
      
      if fin_ip_2 == "" 
        fin_ip_2 = '-255'
      elsif fin_ip_2 != "*"
        fin_ip_2 = '-'+fin_ip_2.to_s
      elsif fin_ip_2 == "*" 
        fin_ip_2 = ''
      
      end
      
      Nmap::Program.scan do |nmap|
        nmap.xml = 'scan'+date_debut.to_s+'.xml'
        nmap.ping = true
        nmap.system_dns = true
    
        nmap.targets = '172.16.'+debut_ip_1.to_s+fin_ip_1.to_s+'.'+debut_ip_2.to_s+fin_ip_2.to_s
      end
      Nmap::XML.new('scan'+date_debut.to_s+'.xml') do |xml|
    
      puts "\nAdresse ip    | Nom d'hote"
        xml.each_host do |host|
          @machine = Machine.find_by_nom_machine("#{host.hostnames}")
          if !@machine
            @machine = Machine.new(:nom_machine => "#{host.hostnames}", :adresse_ip => "#{host.address}", :salle_id => salle_id, :ping => 1, :up_at => Time.new)
            @machine.save
            puts "\nEnregistrement de : #{host.address}\t#{host.hostnames}"
          end
        end
      end
      @salle = Salle.find(salle_id)
      @salle.update_attributes(:nb_import_en_cours => @salle.nb_import_en_cours-1)
  end
end
